package com.yangleping.springframework.beans.factory.config;

import com.yangleping.springframework.beans.factory.HierarchicalBeanFactory;
import com.yangleping.springframework.util.StringValueResolver;

public interface ConfigurableBeanFactory extends SingletonBeanRegistry, HierarchicalBeanFactory {

    String SCOPE_SINGLETON = "singleton";

    String SCOPE_PROTOTYPE = "prototype";

    /**
     * 添加 BeanPostProcessor
     * @param beanPostProcessor
     */
    void addBeanPostProcessor(BeanPostProcessor beanPostProcessor);

    /**
     * 注册 Bean 的 ValueResolver
     */
    void addEmbeddedValueResolver(StringValueResolver valueResolver);

    /**
     * 解析 Bean 的 ValueR
     */
    String resolveEmbeddedValue(String value);
}
